package com.rfid.project.model;

import javax.persistence.*;

import biz.core.IdEntity;

import java.util.Date;

@Entity
public class Project extends IdEntity {

	// 项目代号
	private String projectCode;

	// 项目名称
	private String name;

	// 创建创建者
	@ManyToOne
	@JoinColumn(name = "CreactorID")
	private People reactor;
	// 创建日期
	private Date createDate;

	// 项目开始日期
	private Date startDate;

	// 初次计划完成日期
	private Date firstPlanFinishDate;

	// 计划完成日期
	private Date planFinishDate;

	// 计划完成日期变更次数
	private Integer planFinishDateChangeCount;

	// 实际完成日期
	private Date actualFinishDate;

	// 项目描述
	private String projectDescription;

	// 部门
	@ManyToOne
	@JoinColumn(name = "DepartmentID")
	private Department department;

	// 课题工号
	private String projectPlanNo;

	// 批次号
	private String projectBatchNo;

	// 项目类型
	@ManyToOne
	@JoinColumn(name = "ProjectTypeID")
	private ProjectType projectType;

	// 项目来源
	@ManyToOne
	@JoinColumn(name = "ProjectSourceID")
	private ProjectSource projectSource;

	// 客户
	@ManyToOne
	@JoinColumn(name = "CustomerID")
	private Customer customer;

	// 计划消耗工时
	private Float planConsumeWorkTime;

	// 实际消耗工时
	private Float actualConsumeWorktime;
	
	//填报消耗工时
	private Float confirmationWorktime;

	// 难度系数
	private Double hardRate;
	
	//状态
	private String status;

	// 项目报告频度
	@ManyToOne
	@JoinColumn(name = "ProjectReportFrequencyID")
	private ProjectReportFrequency projectReportFrequency;

	public String getProjectCode() {
		return projectCode;
	}

	public void setProjectCode(String projectCode) {
		this.projectCode = projectCode;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public Date getFirstPlanFinishDate() {
		return firstPlanFinishDate;
	}

	public void setFirstPlanFinishDate(Date firstPlanFinishDate) {
		this.firstPlanFinishDate = firstPlanFinishDate;
	}

	public Date getPlanFinishDate() {
		return planFinishDate;
	}

	public void setPlanFinishDate(Date planFinishDate) {
		this.planFinishDate = planFinishDate;
	}

	public Integer getPlanFinishDateChangeCount() {
		return planFinishDateChangeCount;
	}

	public void setPlanFinishDateChangeCount(Integer planFinishDateChangeCount) {
		this.planFinishDateChangeCount = planFinishDateChangeCount;
	}

	public Date getActualFinishDate() {
		return actualFinishDate;
	}

	public void setActualFinishDate(Date actualFinishDate) {
		this.actualFinishDate = actualFinishDate;
	}

	public String getProjectDescription() {
		return projectDescription;
	}

	public void setProjectDescription(String projectDescription) {
		this.projectDescription = projectDescription;
	}

	public Department getDepartment() {
		return department;
	}

	public void setDepartment(Department department) {
		this.department = department;
	}

	public String getProjectPlanNo() {
		return projectPlanNo;
	}

	public void setProjectPlanNo(String projectPlanNo) {
		this.projectPlanNo = projectPlanNo;
	}

	public String getProjectBatchNo() {
		return projectBatchNo;
	}

	public void setProjectBatchNo(String projectBatchNo) {
		this.projectBatchNo = projectBatchNo;
	}

	public ProjectType getProjectType() {
		return projectType;
	}

	public void setProjectType(ProjectType projectType) {
		this.projectType = projectType;
	}

	public ProjectSource getProjectSource() {
		return projectSource;
	}

	public void setProjectSource(ProjectSource projectSource) {
		this.projectSource = projectSource;
	}

	public Customer getCustomer() {
		return customer;
	}

	public void setCustomer(Customer customer) {
		this.customer = customer;
	}

	public Float getPlanConsumeWorkTime() {
		return planConsumeWorkTime;
	}

	public void setPlanConsumeWorkTime(Float planConsumeWorkTime) {
		this.planConsumeWorkTime = planConsumeWorkTime;
	}

	public Double getHardRate() {
		return hardRate;
	}

	public void setHardRate(Double hardRate) {
		this.hardRate = hardRate;
	}

	public ProjectReportFrequency getProjectReportFrequency() {
		return projectReportFrequency;
	}

	public void setProjectReportFrequency(
			ProjectReportFrequency projectReportFrequency) {
		this.projectReportFrequency = projectReportFrequency;
	}

	public People getReactor() {
		return reactor;
	}

	public void setReactor(People reactor) {
		this.reactor = reactor;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public Float getActualConsumeWorktime() {
		return actualConsumeWorktime;
	}

	public void setActualConsumeWorktime(Float actualConsumeWorktime) {
		this.actualConsumeWorktime = actualConsumeWorktime;
	}

	public Float getConfirmationWorktime() {
		return confirmationWorktime;
	}

	public void setConfirmationWorktime(Float confirmationWorktime) {
		this.confirmationWorktime = confirmationWorktime;
	}

}
